#pragma once

#include <wfrest/HttpServer.h>
#include <workflow/WFFacilities.h>

class CloudiskServer
{
public:
    CloudiskServer()
    {
    }

    // 注册路由
    void register_modules();

    // 启动服务器
    int start(unsigned short port)
    {
        return m_server.start(port);
    }

    void stop()
    {
        m_server.stop();
    }

    // 列出服务器运行状态,所有注册的路由
    void list_routes()
    {
        m_server.list_routes();
    }

    // 跟踪服务器运行状态
    CloudiskServer &track()
    {
        m_server.track();
        return *this; // 返回*this，实现链式调用
    }

private:
    // 注册路由模块
    void register_static_resources_module(); // 静态资源路由
    void register_signup_module();           // 注册路由
    void register_signin_module();           // 登录路由
    void register_userinfo_module();         // 用户信息管理路由
    void register_fileupload_module();       // 文件上传路由
    void register_filedownload_module();     // 文件下载路由
    void register_filelist_module();         // 文件列表路由

private:
    wfrest::HttpServer m_server;
};
